VIM 将TODO项收集至寄存器

1. 将TODO项收集至寄存器

:::alert-warning

通过把 :global:yank 这两条命令结合在一起,可以把所有匹配 {pattern}的文本行收集到某个寄存器中。
:::

➾ :g/TODO/yank A
➾ :reg a
《"a // TODO: Cache this regexp for certain depths.
       // TODO: No matching end code found - warn!

此处有一个窍门,即要用大写字母A引用寄存器。这意味着Vim将把内容附加到指定的寄存器,用小写字母 a的话,则会覆盖原有寄存器的内容。因此,这条global命令可以被解读为“将所有匹配模式 /TODO/ 的文本行依次附加到寄存器 a

:::alert-warning
global命令与 :bufdo或 :argdo一起搭配使用,argdo 使用global 命令时 不能使用normal.

argdo  :g/TODO/d

:::

还有一种方法:附加到 文件尾部,但是对于批量不够友善.

:g/TODO/t$